package com.maruping.disk.login.service;

import com.maruping.disk.login.entity.MenuLevelEntity;
import com.maruping.disk.mybatis.entity.PtMenuEntity;
import com.maruping.disk.mybatis.entity.PtUserEntity;

import java.util.List;

public interface LoginService {
    /**
     * 查询用户信息
     * @param username 用户名称
     * @return PtUserEntity 用户实体
     */
    PtUserEntity queryUserInfoByName(String username);

    /**
     * 查询菜单列表
     * @return List<PtMenuEntity> 菜单实体列表
     */
    List<PtMenuEntity> queryMenuList();

    /**
     * 查询分级菜单列表
     * @return List<MenuLevelEntity> 分级菜单实体列表
     */
    List<MenuLevelEntity> queryMenuListLevel();

    /**
     * 查询权限列表
     * @param userUuid 用户唯一标识
     * @return List<String> 权限标识列表
     */
    List<String> queryPermissionList(String userUuid);

    /**
     * 新增方法：通过邮箱查询用户信息
     * @param email 用户邮箱
     * @return PtUserEntity 用户实体（不存在时返回 null）
     */
    PtUserEntity queryUserByEmail(String email);

    /**
     * 新增方法：根据邮箱更新用户密码
     * @param email 用户邮箱
     * @param newPassword 新密码（建议提前加密）
     */
    void updatePassword(String email, String newPassword);
}